// RAP [rh] quick access disabled
///*******************************************************************************
// * Copyright (c) 2006, 2010 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//
//package org.eclipse.ui.internal.quickaccess;
//
//
//import org.eclipse.jface.resource.ImageDescriptor;
//
///**
// * @since 3.3
// *
// */
//public abstract class QuickAccessElement {
//
// static final String separator = " - "; //$NON-NLS-1$
//
// private static final int[][] EMPTY_INDICES = new int[0][0];
// private QuickAccessProvider provider;
//
// /**
// * @param provider
// */
// public QuickAccessElement(QuickAccessProvider provider) {
// super();
// this.provider = provider;
// }
//
// /**
// * Returns the label to be displayed to the user.
// *
// * @return the label
// */
// public abstract String getLabel();
//
// /**
// * Returns the image descriptor for this element.
// *
// * @return an image descriptor, or null if no image is available
// */
// public abstract ImageDescriptor getImageDescriptor();
//
// /**
// * Returns the id for this element. The id has to be unique within the
// * QuickAccessProvider that provided this element.
// *
// * @return the id
// */
// public abstract String getId();
//
// /**
// * Executes the associated action for this element.
// */
// public abstract void execute();
//
// /**
// * Return the label to be used for sorting and matching elements.
// *
// * @return the sort label
// */
// public String getSortLabel() {
// return getLabel();
// }
//
// /**
// * @return Returns the provider.
// */
// public QuickAccessProvider getProvider() {
// return provider;
// }
//
// /**
// * @param filter
// * @return
// */
// public QuickAccessEntry match(String filter,
// QuickAccessProvider providerForMatching) {
// String sortLabel = getLabel();
// int index = sortLabel.toLowerCase().indexOf(filter);
// if (index != -1) {
// return new QuickAccessEntry(this, providerForMatching,
// new int[][] { { index, index + filter.length() - 1 } },
// EMPTY_INDICES);
// }
// String combinedLabel = (providerForMatching.getName() + " " + getLabel()); //$NON-NLS-1$
// index = combinedLabel.toLowerCase().indexOf(filter);
// if (index != -1) {
// int lengthOfElementMatch = index + filter.length()
// - providerForMatching.getName().length() - 1;
// if (lengthOfElementMatch > 0) {
// return new QuickAccessEntry(this, providerForMatching,
// new int[][] { { 0, lengthOfElementMatch - 1 } },
// new int[][] { { index, index + filter.length() - 1 } });
// }
// return new QuickAccessEntry(this, providerForMatching,
// EMPTY_INDICES, new int[][] { { index,
// index + filter.length() - 1 } });
// }
// String camelCase = CamelUtil.getCamelCase(sortLabel);
// index = camelCase.indexOf(filter);
// if (index != -1) {
// int[][] indices = CamelUtil.getCamelCaseIndices(sortLabel, index, filter
// .length());
// return new QuickAccessEntry(this, providerForMatching, indices,
// EMPTY_INDICES);
// }
// String combinedCamelCase = CamelUtil.getCamelCase(combinedLabel);
// index = combinedCamelCase.indexOf(filter);
// if (index != -1) {
// String providerCamelCase = CamelUtil.getCamelCase(providerForMatching
// .getName());
// int lengthOfElementMatch = index + filter.length()
// - providerCamelCase.length();
// if (lengthOfElementMatch > 0) {
// return new QuickAccessEntry(
// this,
// providerForMatching,
// CamelUtil.getCamelCaseIndices(sortLabel, 0, lengthOfElementMatch),
// CamelUtil.getCamelCaseIndices(providerForMatching.getName(),
// index, filter.length() - lengthOfElementMatch));
// }
// return new QuickAccessEntry(this, providerForMatching,
// EMPTY_INDICES, CamelUtil.getCamelCaseIndices(providerForMatching
// .getName(), index, filter.length()));
// }
// return null;
// }
//}